# 百度人体检测
import baidu_client
from utils import data_cal, image_util


class Dict2Obj(dict):
    def __init__(self, *args, **kwargs):
        super(Dict2Obj, self).__init__(*args, **kwargs)

    def __getattr__(self, key):
        value = self[key]
        if isinstance(value, dict):
            value = Dict2Obj(value)
        return value


def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()


image = get_file_content('image/beiying.jpg')

client = baidu_client.analysis;

""" 调用人体检测与属性识别 """
attr = client.bodyAttr(image);
attr = Dict2Obj(attr)

image_size = image_util.size_bytes(image)
location = attr['person_info'][0]['location']
rate = data_cal.offset_rate(image_size, (location['width'], location['height']), (location['left'], location['top']))

print(attr)
print(rate)
